Various forms of network-based storage systems exist today. These forms include network attached storage (NAS), storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up critical data (e.g., by data mirroring), and the like.
A network-based storage system typically includes at least one storage server, which is a processing system configured to store and retrieve data on behalf of one or more client processing systems (“clients”). A storage server operates on behalf of one or more clients to store and manage shared files. The files may be stored in a storage subsystem that includes one or more arrays of mass storage devices, such as magnetic or optical disks or tapes, by using RAID (Redundant Array of Inexpensive Disks). Hence, the mass storage devices in each array may be organized into one or more separate RAID groups. A storage server provides clients with file-level access. Some storage servers may additionally provide block-level access.
Current storage systems are generally packaged in either of two main forms: 1) an all-in-one custom-designed system that is essentially a standard computer with built-in disk drives, all in a single chassis (“enclosure”), or 2) a modular system in which one or more sets of disk drives, each in a separate chassis, are connected to an external storage server in another chassis. A modular system can be built up by adding multiple chassis in a rack, and then cabling the chassis together. The disk drive enclosures in a module system are often called “shelves,” “storage shelf,” or “storage shelves.”
A client can send a request to a storage server to access data stored on disks in a storage subsystem. The storage server includes a storage adapter coupled to an I/O module in the storage subsystem that creates an in-band communications path, also known as a data path, to access the data stored on the disks. An I/O module can receive and process a request through the in-band path. An I/O module, however, may be non-responsive to a request which can result in a time-out. There is not, however, a means for controlling a non-responsive I/O module independent of the in-band path.